{% extends 'base.html' %}
{% load static %}

{% block title %}
    <title>组信息设置</title>
{% endblock title %}

{% block navheader %}
    <section class="content-header">
        <div class="container-fluid">
            <div class="row mb-2">
                <div class="col-sm-6">
                    <h1>组信息设置</h1>
                </div>
                <div class="col-sm-6">
                    <ol class="breadcrumb float-sm-right">
                        <li class="breadcrumb-item"><a href="{% url 'assets:dashboard' %}">首页</a></li>
                        <li class="breadcrumb-item"><a href="{% url 'user:grouplists' %}">组列表</a></li>
                        <li class="breadcrumb-item active">组信息设置</li>
                    </ol>
                </div>
            </div>
        </div><!-- /.container-fluid -->
    </section>
{% endblock navheader %}

{% block content %}
    <div class="card">
        <div class="card-header">
            <h3 class="card-title">组信息设置</h3>
        </div>
        <!-- /.card-header -->
        <div class="card-body row">
            <input type="text" id="groupid" value="{{ group.id }}" hidden>
            <div class="col-2 pt-1 pb-1">组名<span style="color:red;"> * </span>：</div>
            <div class="col-10 pt-1 pb-1"><input class="form-control" type="text" id="groupname"
                                                 value="{{ group.group_name }}" disabled></div>
            <div class="col-2 pt-1 pb-1">用户：</div>
            <div class="col-5 pt-1 pb-1">
                <div class="form-group">
                    <span>组内用户</span>
                    <select multiple class="form-control" id="user_select_left" style="min-height:150px">
                        {% for user in group.user_set.all %}
                            <option value="{{ user.id }}">{{ user.username }}</option>
                        {% endfor %}
                    </select>
                </div>
            </div>
            <div class="col-5 pt-1 pb-1">
                <div class="form-group">
                    <span>其他用户</span>
                    <select multiple class="form-control" id="user_select_right" style="min-height:150px">
                        {% for user in other_users %}
                            <option value="{{ user.id }}">{{ user.username }}</option>
                        {% endfor %}
                    </select>
                </div>
            </div>

            <div class="col-2 pt-1 pb-1">主机：</div>
            <div class="col-5 pt-1 pb-1">
                <div class="form-group">
                    <span>拥有主机</span>
                    <select multiple class="form-control" id="host_select_left" style="min-height:150px">
                        {% for host in group.remote_user_bind_hosts.all %}
                            <option value="{{ host.id }}">{{ host.hostname }}_{{ host.int_ip }}_{{ host.remote_user.username }}</option>
                        {% endfor %}
                    </select>
                </div>
            </div>
            <div class="col-5 pt-1 pb-1">
                <div class="form-group">
                    <span>其他主机</span>
                    <select multiple class="form-control" id="host_select_right" style="min-height:150px">
                        {% for host in other_hosts %}
                            <option value="{{ host.id }}">{{ host.hostname }}_{{ host.int_ip }}_{{ host.remote_user.username }}</option>
                        {% endfor %}
                    </select>
                </div>
            </div>

            <div class="col-2 pt-1 pb-1">备注：</div>
            <div class="col-10 pt-1 pb-1"><textarea id="memo"
                                                    class="form-control">{{ group.memo | default:'' }}</textarea></div>
            <div class="offset-2 col-10 pt-2">
                <a class="btn btn-default" href="{% url 'user:grouplists' %}">返回</a>
                <button class="btn btn-success ml-2" onclick="changeuserprofile(this);">提交</button>
            </div>
        </div>
        <!-- /.card-body -->
    </div>
    <!-- /.card -->
{% endblock content %}

{% block js %}

    <script>
        // 修改个人信息
        changeuserprofile = function (event) {
            toastr.options.closeButton = true;
            toastr.options.showMethod = 'slideDown';
            toastr.options.hideMethod = 'fadeOut';
            toastr.options.closeMethod = 'fadeOut';
            toastr.options.timeOut = 3000;
            toastr.options.extendedTimeOut = 0;
            toastr.options.progressBar = true;
            toastr.options.positionClass = 'toast-top-right';

            $(event).removeAttr("onclick");
            $(event).attr("disabled", true);

            var groupid = $('#groupid').val();
            var memo = $('#memo').val();

            var users = new Array();
            $("#user_select_left option").each(function () {
                var value = $(this).val();   //获取option值
                users.push(value);
            });
            users = users.join(",")

            var hosts = new Array();
            $("#host_select_left option").each(function () {
                var value = $(this).val();   //获取option值
                hosts.push(value);
            });
            hosts = hosts.join(",")

            csrfmiddlewaretoken = '{{ request.COOKIES.csrftoken }}';

            $.ajax({
                url: "{% url 'user_api:group_update' %}",
                async: true,
                type: 'POST',
                dataType: 'json',
                data: {
                    'csrfmiddlewaretoken': csrfmiddlewaretoken,
                    'groupid': groupid,
                    'memo': memo,
                    'users': users,
                    'hosts': hosts,
                },
                timeout: 5000,
                cache: true,
                beforeSend: LoadFunction, //加载执行方法
                error: errFunction,  //错误执行方法
                success: succFunction, //成功执行方法
            });

            function LoadFunction() {
                // 提交中
            };

            function errFunction() {
                // 消息框
                toastr.error('更新组信息错误');
                $(event).removeAttr("disabled");
                $(event).attr("onclick", "changeuserprofile(this);");
            };

            function succFunction(res) {
                if (res.code != 200) {
                    // 消息框
                    toastr.error('更新组信息错误: ' + res.err);
                    $(event).removeAttr("disabled");
                    $(event).attr("onclick", "changeuserprofile(this);");
                } else {
                    // 消息框
                    toastr.options.timeOut = 1000;
                    toastr.options.onHidden = function () {
                        window.location.href = "{% url 'user:group_detail' group.id %}";
                    }
                    toastr.success('更新组信息成功');
                }
            };
        }

        // 左右选项框
        $(function () {
            //移到右边
            $('#add').click(function () {
                //获取选中的选项，删除并追加给对方
                $('#select1 option:selected').appendTo('#select2');
            });
            //移到左边
            $('#remove').click(function () {
                $('#select2 option:selected').appendTo('#select1');
            });

            //全部移到右边
            $('#add_all').click(function () {
                //获取全部的选项,删除并追加给对方
                $('#select1 option').appendTo('#select2');
            });
            //全部移到左边
            $('#remove_all').click(function () {
                $('#select2 option').appendTo('#select1');
            });

            //双击选项
            $('#user_select_left').dblclick(function () { //绑定双击事件
                //获取全部的选项,删除并追加给对方
                $("option:selected", this).appendTo('#user_select_right'); //追加给对方
            });
            //双击选项
            $('#user_select_right').dblclick(function () {
                $("option:selected", this).appendTo('#user_select_left');
            });


            //双击选项
            $('#host_select_left').dblclick(function () { //绑定双击事件
                //获取全部的选项,删除并追加给对方
                $("option:selected", this).appendTo('#host_select_right'); //追加给对方
            });
            //双击选项
            $('#host_select_right').dblclick(function () {
                $("option:selected", this).appendTo('#host_select_left');
            });

        });

    </script>
{% endblock js %}
